#include <stdio.h>
#include <assert.h>

//void fun3(int M, int N)
//{
//	for (int i = 0; i < M; i++)
//	{
//		printf("hehe\n");
//	}
//
//	int count = 0;
//	for (int i = 0; i < N; i++)
//	{
//		count++;
//	}
//}

//void func4(int N)
//{
//	int count = 0;
//	for (int i = 1; i < 100; i++)
//	{
//		count++;
//	}
//	printf("%d", count);
//}

//void BubbleSort(int* a, int n)
//{
//	assert(a);
//
//	for (int i = 0; i < n; i++)
//	{
//		int flag = 1;
//		for (int j = 0; j < n - 1 - i; j++)
//		{
//			if (a[j] > a[j + 1])
//			{
//				int tmp = a[j];
//				a[j] = a[j + 1];
//				a[j + 1] = tmp;
//				flag = 0;
//			}
//		}
//
//		if (flag == 1)
//			break;
//	}
//}

//void BinSearch(int* a, int n, int x)
//{
//	assert(a);
//
//	int left = 0;
//	int right = n - 1;
//	while (left <= right)
//	{
//		int mid = left + ((right - left) >> 2);
//		if (a[mid] > x)
//		{
//			right = mid - 1;
//		}
//		else if (a[mid] < x)
//		{
//			left = mid + 1;
//		}
//		else
//			return mid;
//	}
//}

//long long Fac(size_t N)
//{
//	if (N == 0)
//		return 1;
//
//	return Fac(N - 1) * N;
//}

//long long Fib(size_t N)
//{
//	if (N < 3)
//		return 1;
//
//	return Fib(N - 1) + Fib(N - 2);
//}


// long long Fac(size_t N)
//{
//	if (N == 0)
//		return 1;
//
//	for (int i = 0; i < N; i++)
//	{
//		printf("hehe\n");
//	}
//
//	return Fac(N - 1) * N;
//}

//void BubbleSort(int* a, int n)
//{
//	assert(a);
//
//	for (int i = n; i > 0; i--)
//	{
//		int flag = 0;
//		for (int j = 1; j < i; j++)
//		{
//			if (a[j - 1] > a[j])
//			{
//				int tmp = a[j-1];
//				a[j - 1] = a[j];
//				a[j] = tmp;
//				flag = 1;
//			}
//		}
//
//		if (!flag)
//			break;
//	}
//}

//long long* Fibonacci(size_t n)
//{
//	if (n == 0)
//		return NULL;
//
//	long long* fibArray = (long long*)malloc((n + 1) * sizeof(long long));
//	fibArray[0] = 0;
//	fibArray[1] = 1;
//
//	for (int i = 2; i <= n; i++)
//	{
//		fibArray[i] = fibArray[i - 1] + fibArray[i - 2];
//	}
//
//	return fibArray;
//}


//long long Fac(int N)
//{
//	if (N == 0)
//		return 1;
//
//	return Fac(N - 1) * N;
//}


long long Fib(size_t N)
{
	if (N < 3)
		return 1;

	return Fib(N - 1) + Fib(N - 2);
}